ChatGPT开始联网,最后的封印解除了
这下没什么能阻止 ChatGPT 了?
ChatGPT 是个「智商超高」的人工智能,经过 GPT-4 内核的升级版更是如此。然而我们知道,它的训练数据截止到 2021 年,没有训练过的东西,AI 是不可能准确回答出来的。
自去年 11 月上线以来,ChatGPT 已被无数人使用,人们一直要求以各种形式让这个大语言模型接入更多数据,3 月 24 日,OpenAI 终于宣布部分解除了 ChatGPT 无法联网的限制。
OpenAI 的解决方案是用第三方插件作为桥梁,让 AI 在较安全的环境下「看」外界数据。昨天该机构开放了第一批 ChatGPT 插件名单。这批插件由 Expedia、FiscalNote、Instacart、KAYAK、Klarna、Milo、OpenTable、Shopify、Slack、Speak、Wolfram 和 Zapier 创建。
具体来说,插件现在可以让你用 ChatGPT 执行以下操作:
检索实时信息:例如体育比分、股票价格、最新消息等;
检索知识库信息:例如公司文件、个人笔记等;
代表用户执行操作:例如,订机票、订餐等。
除此之外,OpenAI 还自己提供了两种插件,包括一个网络浏览器和一个代码解释器,并开源了一个知识库检索插件的代码。现在,任何开发人员都可以自行构建插件,用来增强 ChatGPT 的信息库了。
目前插件 alpha 版的访问权限已扩展至更多候补名单中的用户和开发人员,虽然 OpenAI 表示优先考虑少部分开发者和 ChatGPT Plus 用户,但也计划未来进行更大规模的开放。
为了让大家有个直观的感受,这里举一个例子:用户可以从 ChatGPT 中选择并安装 Wolfram 插件,从而提高其计算智能。
Wolfram Alpha 里的数据均来自各大学术网站、出版刊物与科学机构,专业性绝对有保障,这样的 ChatGPT 有没让你感觉变得更强大了?
概述
今天的大语言模型虽然已能完成各种任务,但作用仍然有限。训练数据是它们可以从中学习的唯一信息,这些内容可能已过时,但又要适配人们所有的需求。此外,语言模型唯一可以开箱即用的能力就是输出文本。此文本可能包含有用的说明,但要真正遵循这些说明,人就需要进行更多处理。
虽然不是一个完美的类比,但插件可以成为语言模型的「眼睛和耳朵」,从而让语言模型能够访问新的、私人的或具体的,不包含在训练数据中的信息。
为了响应用户的明确请求,插件还可以使语言模型代为执行安全、受限的操作,从而提高整个系统的实用性。
OpenAI 预计,统一应用程序做 AI 交互的开放标准将会出现,他们正在对这样一个标准进行早期尝试。
今天,OpenAI 开始逐步开放 OpenAI 早期合作者为 ChatGPT 用户构建的插件,首先覆盖的对象是 ChatGPT Plus 订阅者,此外也开始推出让开发人员为 ChatGPT 创建自己的插件的能力。
在接下来的几个月里,随着安全系统的改进,OpenAI 计划让使用 OpenAI 模型的开发人员能够将插件集成到自己的应用程序中,而不仅是 ChatGPT。
安全性和更广泛的影响
当然,将语言模型连接到外部工具会带来新的机会,同时也会带来重大的新风险。
插件提供了解决与大型语言模型相关的各种挑战的潜力,包括大模型「幻觉」、追踪最近的事件,以及访问(经过许可的)专有信息源。通过集成对外部数据的显式访问,例如在线最新信息、基于代码的计算或自定义插件检索信息,语言模型可以通过基于证据的参考内容来加强它们的回复。
这些参考资料不仅增强了模型的实用性,还使用户能够评估模型输出的可信度并仔细检查其准确性,从而有可能减轻与最近 GPT-4 系统卡片中讨论的过度依赖相关的风险。最后,插件的价值可能跨越通过帮助用户处理各种新用例(从浏览产品目录到预订航班或订购食物)的现有限制。
但与此同时,插件可能会采取有害或无意的行动,增加不法分子欺诈、误导或虐待他人的能力,从而增加安全层面的挑战。通过增加可能的应用范围,插件可能会增加模型在新领域中采取的错误或未对齐操作而产生负面后果的风险。
这些因素就指导了 ChatGPT 插件平台的开发,OpenAI 为此推出了多项保障措施。
此前,OpenAI 已经在内部和与外部合作者进行了「红队演练」,演习了许多可能的相关场景。例如,红队发现了如果插件在没有安全措施的情况下发布,会执行复杂的 prompt 注入、发送欺诈邮件和垃圾邮件、绕过安全限制或滥用发送到插件的信息。
OpenAI 正在使用这些发现来推动安全设计缓解措施以限制有风险的插件行为,并提高了它们作为用户体验的一部分运行的方式和时间透明度,此外还使用这些发现来确认逐步部署对插件的访问的决定。
插件可能会产生广泛的社会影响。例如,在最近发布的一篇论文中,OpenAI 研究者发现能够使用工具的语言模型可能会比没有工具的语言模型产生更大的经济影响,更普遍地说,根据其他研究人员的发现, 当前的人工智能技术浪潮将对工作转变、替代和创造的速度有很大影响。
让 ChatGPT 浏览网页
在 WebGPT、GopherCite、BlenderBot2、LaMDA2 等一系列工作的激励下,允许语言模型从互联网上读取信息,将严格地扩大了可以讨论的内容范围,超越了训练语料库,融入了当下的新鲜信息。
下图是一个例子,可以看到的是,浏览为 ChatGPT 用户打开了一种体验,以前的模型可能会礼貌地指出它的训练数据没有包括足够的信息让它回答。而在这个例子中,ChatGPT 检索了最近的奥斯卡奖信息(在 2023 年 3 月 13 日颁奖),然后进行了一番熟悉的 ChatGPT 诗歌表演。浏览成为了一种附加体验的方式。
问:你能告诉我哪个人 / 电影赢得了这些类别的奥斯卡奖吗?
最佳演员
最佳配乐
最佳影片
最佳男配角
然后想出一首诗将它们联系在一起。
ChatGPT 会给你一系列的搜索结果,你可以直接点击查看相关的信息来源。
除了为终端用户提供实用价值之外,语言和聊天模型能够进行彻底和可解释的研究,展现了具有可扩展对齐工作方面的前景。
值得注意的是,插件的基于文本的 Web 浏览器仅限于发出 GET 请求,这能减少但不会消除某些类别的安全风险。浏览插件的范围被限定为可用于检索信息,但不包括「事务性」操作,例如表单提交 —— 这类操作具有更大的安全性风险。
浏览功能使用了微软必应搜索 API 从 Web 检索内容。因此,这一功能继承了微软在来源可靠性和信息真实性以及防止检索有问题内容的「安全模式」方面的大量工作。该插件在一个独立的服务中运行,ChatGPT 的浏览活动与基础设施的其余部分是分开的。
为了尊重内容创作者并遵守网络规范,ChatGPT 浏览器插件的用户代理 token 是 ChatGPT-User,并配置为尊重网站的 robots.txt 文件。偶尔可能会导致「点击失败」,这表明该插件正在遵守网站的指示,避免对其进行抓取。此用户代理将仅用于代表 ChatGPT 用户采取直接操作,而不用于以任何自动方式抓取网络。OpenAI 还发布了 IP 出口范围,并实施了限速措施以避免向网站发送过多流量。
代码解释器
可以使用 Python 处理上传和下载的实验性 ChatGPT 模型
OpenAI 为 ChatGPT 背后的模型提供了一个在沙盒、防火墙执行环境中工作的 Python 解释器,以及一些临时磁盘空间。由解释器插件运行的代码在一个持久会话中进行评估,该会话在聊天对话期间(具有上限超时)一直处于活动状态,并且后续调用可以相互构建。目前该功能支持将文件上传到当前对话工作区并下载工作结果。
点击图中的 Finished Calculating:
从最初的用户研究之中,OpenAI 确定了一些使用代码解释器较有价值的用例:
解决定量和定性的数学问题
进行数据分析和可视化
在格式之间转换文件
安全机制
将 ChatGPT 模型连接到编程语言解释器的首要防范措施是对执行进行适当的沙盒处理,以便 AI 生成的代码不会在现实世界中产生意外的副作用。OpenAI 会在安全环境中执行代码,并使用严格的网络控制来防止外部互联网访问执行代码。此外,OpenAI 对每个会话都设置了资源限制。
禁用互联网访问会限制代码沙箱的功能,但这可能是 AI 辅助编程最安全的初始形态。第三方插件在设计中以安全为最优先考虑,再将 ChatGPT 连接到外部世界。
数据获取
开源检索插件使 ChatGPT 能够经许可后访问个人或组织的信息源。它允许用户通过提问或用自然语言的方式表达需求,从他们的数据源中获取最相关的文档片段,例如文件、笔记、电子邮件或公共文档。
作为一个开源和自托管的解决方案,开发人员可以部署他们自己的插件版本并在 ChatGPT 上注册。其插件利用 OpenAI 嵌入并允许开发人员选择向量数据库(如 Milvus、Pinecone、Qdrant、Redis、Weaviate 或 Zilliz)来索引和搜索文档。信息源可以使用 webhooks 与数据库同步。
检索插件允许 ChatGPT 搜索内容向量数据库,并将最佳结果添加到 ChatGPT 会话中。这意味着它不会受到任何外部影响,主要风险是数据授权和隐私。开发人员应只将内容添加到他们有权使用的检索插件中,并且可以在用户的 ChatGPT 会话中共享。
第三方插件
在 ChatGPT 上使用第三方的插件就像这样:
OpenAI 为第三方插件准备了描述清单文件,其中包括对插件功能的机器可读描述、调用方法,以及面向用户的文档。
{
"schema_version": "v1",
"name_for_human": "TODO Manager",
"name_for_model": "todo_manager",
"description for human": "Manages your TODOs!",
"description_for_model": "An app for managing a user's TODOs",
"api": { "url": "/openapi.json" },
"auth": { "type": "none" },
"logo_url": "https://example.com/logo.png",
"legal_info_url": "http://example.com",
"contact_email": "hello@example.com"
}
构建一个插件的步骤:
1、构建你希望语言模型调用的 API 端点(可以是新的 API、已有的 API 或围绕专门为 LLM 设计的现有 API 的包装)。
2、创建一个记录你的 API 的 OpenAPI 规范,以及一个链接到 OpenAPI 规范并包含一些插件特定元数据的清单文件。
在 chat.openai.com 上开始对话时,用户可以选择他们想要启用的第三方插件。有关已启用插件的文档作为对话上下文的一部分显示给语言模型,使模型能够根据需要调用适当的插件 API 来实现用户意图。目前,插件是为调用后端 API 而设计的,OpenAI 还正在探索也可以调用客户端 API 的插件。
OpenAI 表示,他们正在努力开发插件,并推广给更广泛的受众。
往期推荐